package Song.Han.Demo02;

import java.io.*;
import java.util.ArrayList;

/*
    练习：序列化集合
        把多个对象存储在集合中
        对集合进行序列化和反序列化
*/
public class Demo03Test {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //1.创建一个Arraylist集合
        ArrayList<Person> arr = new ArrayList<>();
        //2.往Arraylist集合中存储对象
        arr.add(new Person("张三",18));
        arr.add(new Person("李四",19));
        arr.add(new Person("王五",20));
        //3.创建一个序列化流对象
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\IDeaProject\\Day15\\src\\Song\\Han\\Demo02\\list.txt"));
        //4.使用writeObject，对集合进行序列化
        oos.writeObject(arr);
        //5.创建一个反序列化流对象
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\IDeaProject\\Day15\\src\\Song\\Han\\Demo02\\list.txt"));
        //6.使用readObject,反序列化
        Object obj = ois.readObject();
        //7.把Object类型转换为ArrayList类型
        ArrayList<Person> arr2 = (ArrayList<Person>)obj;
        //8.遍历
        for (Person person : arr2) {
            System.out.println(person);
        }

        ois.close();
        oos.close();

    }
}
